In today's high-tech office, documents are often created in electronic form and then printed. Tools for document creation have become increasingly powerful such as advances in high-resolution laser printers and the emerging support for full color printing. One of the problems that arises with the current technology is that the user may be surprised to find that the printed output does not look the same as the electronic image displayed on the workstation. Many programs try to make the two images match, supporting a what-you-see-is-what-you-get approach. Hardware differences, however, may make true matching impossible. One such difference is resolution. A laser printer may be able to print at 300 dpi while the workstation may support only about a quarter of this density. A compensating difference is that a sophisticated display may support continuous gray levels and/or colors, while a print may have to use halftones. A color display will often be driven through a 256 element color lookup table, limiting the number of colors which may be displayed at any one time, while a printer, using halftones, can produce many more. Finally, the color primaries and white point of the workstation may be different from the inks and paper available at the printer.
In image displays, such as CRTs, the problem of low resolution in the display can be reduced by use of the display's intensity level. In computer graphics, this technique has long been used to reduce the aliasing effects of the low resolution display. Effects such as "jaggies" in lines as they cross pixel boundaries, and "drop out" of small objects which fall between the pixels, are countered by setting the pixel intensities to intermediate levels to reflect that part of the pixel which is covered by the object and the part which is not. Perhaps the simplest anti-aliasing technique is to compute the image at a higher resolution, and then average the pixel values to obtain the lower resolution intensity. For example, if the image was created at four times the resolution, then four by four blocks of pixels would be averaged to obtain the display pixel value. This is, in effect, saying that the display pixels are non-overlapping squares with abrupt edges. Real pixels tend to be round and overlapping, with tapering edges. More sophisticated techniques apply a digital filter to the high-resolution image which, in effect, convolves the image with the pixel profile. However, in the area of desktop publishing, the effects of resolution are strongly apparent in text. Fonts available for the coarse screen resolution are large and simplistic. They cannot show the subtle effect of different font selections. Their size may make them out of proportion to the rest of the page. One may be unable to place the characters in the same positions as on the printed page due to crowding, giving either false page layout and line breaks, or some unreadable representation of the page. The anti-allasing techniques of computer graphics have been applied to the display of text. The fine elements and nonintegral pixel widths of character strokes become partially illuminated pixels. This gives the illusion of increased resolution, and permits much smaller font sizes to be displayed. It also permits the placing of characters at non-integral pixel positions.
The human visual system is able to distinguish a large number of colors. To cover this range of colors, display devices often provide 256 choices (8 bits) for each of the three primary colors, red, green and blue. This is a total of 24 bits or 2.sub.24 possible colors. To simultaneously render any or all of these colors requires a backing frame buffer with 24 bits per pixe. To reduce cost, displays usually provide a smaller pallet of colors which may be selected from this larger set. This is implemented by means of a color lookup table. A 256 entry table can be accessed by an 8-bit index. Each table entry can contain a 24-bit color specification. Thus, a frame buffer with only 8-bits per pixel can be used by looking up each pixel value in the color table to obtain 24-bit color. The display can produce 2.sup.24 colors, but can render only 256 of them at any one time.
Color lookup tables have proven useful By changing a value in a color lookup table, one can alter the appearance of all the pixels which reference this table entry. This is much faster than altering the pixels individually. Color tables can support fast color manipulation, structuring of the image, color correction, and even animation effects. The limited set of simultaneous colors, however, presents a problem concerning which colors should be chosen for the color table entries. Scanned images and some computer generated effects contain far more colors than the allowed 256. One must somehow pick colors that do not deviate too far from the true colors of the image. One would also like to reduce the false contours which arise when a smooth variation in color is displayed as a jump between one producible color and the next--this is just allasing in color space. One approach to this problem is to first analyze the image to determine which colors are most representative--this can be a costly process. Another alternative approach is to set the table to a fixed set of distributed colors, and then superimpose halftoning techniques to give the appearance of intermediate colors. In this approach, resolution is being traded for intensity levels of the color primaries. The halftone screen is used to choose between the available bounding colors for each pixel A rectangular, dispersed dot screen applied to each of the primary color components is straightforward and adequate. It also allows one to display the image as it is drawn. An error diffusion approach has also been tried which gives slightly better results, but must be applied to the entire image and is not used with individual image components.
Since color is a three-dimensional space, halftoning is applied three times for each pixel to achieve the appearance of intermediate values for each of the three color coordinates. The elements of the color lookup table are partitioned along the color coordinate axis to support the independent halftoning of each coordinate. If the coordinate axis is red, green and blue, the 8-bit color table index may be split into three bits of red, three bits of green, and two bits of blue. This gives eight shades of red, eight shades of green, and four shades of blue, plus all their combinations. Blue is chosen to receive only two bits because the eye is less sensitive to blue. An alternative is to allocate six shades of red, six shades of green, and six shades of blue. The color table is thought of as a three-dimensional array with six elements in each dimension which gives the mapping from color coordinates to color table index.
There are many possible coordinate systems used in describing color space besides red, green and blue. One alternative is to rotate and scale the axis so that one corresponds to the luminance Y. Luminance is a measure of how bright the color appears (yellow appears brighter than blue). The other two coordinates give the chrominance information --an approach used in the television industry, which implements the YIQ color mode. The Y component gives the luminance, which is shown on black-and-white sets. All three coordinates are used for color television.
One color encoding standard describes the YES color model Again, Y is the luminance, and the E and S coordinates give the chrominance. The E coordinate is the green to red axis, and the S coordinate is the blue to yellow axis using the red, green, and blue primaries and white point. The YES coordinates are given by: EQU Y=0.253R+0.684G+0.063B EQU E=0.5R-0.5G EQU S=0.25R+0.25G-0.5B
where R, G, B are the red, green and blue coordinates of the color. One advantage of this color model is that the E and S coordinates are very easy to calculate. The YES color coordinates are not visually uniform. Equivalent displacements in these coordinates generally do not appear to the eye as equivalent changes in color. There are visually uniform color spaces, notably the L*a*b* and L*u*v* color models. Using these coordinates for color table assignments and halftoning gives slightly better results, since the colors appear uniformly distributed, and the halftoning is linear with respect to appearance. However, these coordinates are much costlier to calculate.
U.S. Pat. No. 5,278,678 to Harrington discloses a scheme for the color display of images on a device with a moderate sized color table which first builds halftoned binary images for each of the three color components at a multiple of the display resolution. By summing bit values it then determines average values for display resolution pixels. The average values are then mapped to a color table. The YES color coordinate system is used by the Harrington scheme where colors are separated into luminance and chrominance components, allowing more weight to be given to the luminance from which the eye extracts most information. The scheme provides both anti-aliasing of solid areas, such as line and text, and color halftoning to give the appearance of colors between those available from the color table.
U.S. Pat. No. 5,543,820 to Edgar discloses a method for processing color signals representing an image including the steps of obtaining multiple linear color signals representing the image, translating the multiple linear color signals to a linear luminance signal and at least one linear chrominance signal converting the linear luminance signal to a nonlinear luminance signal and converting the linear chrominance signal to an non-linear chrominance signal by dividing the linear chrominance signal by a non-linear luminance signal. The linear processing is directed at producing improved image detail and color.
U.S. Pat. Nos. 5,543,311 and 5,517,334 to Morag et al. provides a plurality of color volume elements which together contain at least a portion of the color space and which in effect quantize the color space. An index value is also provided for each pixel in the image where each index value represents a particular representative color value in the subset of the first plurality of representative color values. The image may then be modified by modifying the representative color values in the subset of the first plurality of representative color values. The image, as modified, may be displayed by using the index value for each pixel.
U.S. Pat. No. 4,812,903 to Wagensonner et al. discloses a system for electronically enhancing an image of a colored original in order to produce a copy of that original RGB color signals are first passed through a gray balancing unit and then to an luminance and chrominance generating unit. In the generating unit, a luminance signal and a pair of chrominance signals corresponding to color image signals of an image to be copied are formed. The luminance signal is processed to enhance sharpness of an image, and one or both of the chrominance signals are also processed in a color saturation adjusting unit. Lookup tables are provided for converting the adjusted chrominance signals back to corresponding RGB color signals.
U.S. Pat. No. 4,758,885 to Sasaki et al. discloses a method of processing color images wherein a high resolution image is converted so that it can be displayed on a lower resolution color printer or the like. An input image of full color is converted over to a L*u*v* system which is based on brightness and saturation. The L*u*v* components are then compressed, converted into CMY signals and sent to a printer. A method of calculating the L*u*v* components from an RGB signal is shown.
While the related art recognizes the problems involved in processing color images on a continuous tone monitor, the art does not provide an efficient and effective rendering of high quality color in a manner which results in minimal false contours on binary marking devices that employ halftoning to create intermediate tones.
A classic problem in printing documents is the representation of intermediate tones (e.g. grays) with fixed level links (e.g. black). This is typically solved by halftoning, which is the printing of a spatially dispersed pattern of solid colored spots (e.g. black and white) which the eye integrates into the desired intermediate level However, for a fixed spot size, producing more gray levels means using patterns with larger spatial areas. Using too large an area results in visible halftone patterns, while too small an area gives too few gray levels and results in false contours in the image. Refer to FIG. 1a for an example of a printed document exhibiting noticeable false contours. One is forced to compromise between these two limitations, and may find it impossible to satisfactorily produce quality print requirements.
A color printer offers new dimensions which can aid with this problem. The eye is much more sensitive to luminance than to chrominance. False contours will be most visible if they arise from steps in luminance. A concept of contour reduction was Gray Levels from an 8 Bit Color Monitor" presented at the 1992 SPIE/IS&T Symposium on Electronic Imaging Science and Technology, Volume 1666--Human Vision, Visual Processing, and Digital Display III, but in a form which was only applied to color monitors and only to ramps of luminance for a single color. The teachings in Tyler et al, however, are not effective for image rendering in printed form.
Therefore, there is a need for a system which can ameliorate the quality tradeoff between halftones and levels that exists in digital systems with low sampling spatial frequencies. Furthermore, there is a need to improve print quality of documents generated by such digital systems.
Therefore, the object of this invention is to provide a method of sacrificing chrominance accuracy within printer halftones and for using it to improve the luminance correctness for any requested color in a printed document, thus reducing false contours typically found in printed documents when luminance adjustments are made.
All of the references cited herein are incorporated by reference for their teachings.